<?php

namespace app\admin\controller;

use think\Db;
use think\Validate;

// 网站设置
class Webset extends Auth
{
    // 载入页面
    public function webset()
    {
        // 页面赋值
        // $this->assign('Indexpage', $Indexpage);
        // 返回视图页面
        return view("/page/webset");
    }

    // 获取配置信息
    public function getInfo()
    {
        // 获取配置信息
        $data = DB::table('v1_config')->where('id', 1)->find();
        if ($data) {
            // 获取后台路径地址
            $data['adminpath'] = setAdminPath();
            return json($this->initTips(200, '成功', $data));
        } else {
            return json($this->initTips(400, '无'));
        }
    }

    // 保存配置信息
    public function editInfo()
    {

        // 验证权限
        if (session(USERPOWER != 1)) {
            return json($this->initTips(300, '权限不足'));
        }

        // 获取请求信息
        $request = $this->request;
        // 信息验证
        $validate = new Validate([
            'adminpath' => 'require',
            'contact' => 'require',
        ], [
            'adminpath.require' => '后台路径不能为空',
            'contact.require' => '联系方式不能为空',
        ]);
        // 判断验证是否通过
        if (!$validate->check($request->post())) {
            // 表单验证失败
            return json($this->initTips(100, $validate->getError()));
        } else {
            Db::startTrans(); //开启事务
            try {
                // 添加数据处理
                $data = [
                    "title" => $request->post('title'),
                    "subheading" => $request->post('subheading'),
                    "description" => $request->post('description'),
                    "keywords" => $request->post('keywords'),
                    "notice" => $request->post('notice'),
                    "contact" => $request->post('contact'),
                    "copyright" => $request->post('copyright'),
                ];
                // 更新数据
                $res = Db::table('v1_config')->where('id', 1)->update($data);
                // 判断数据是否添加成功
                if ($res >= 0) {
                    // 判断作业是否推送成功
                    if (setAdminPath($request->post('adminpath'))) {
                        // 事务提交
                        Db::commit();
                        // 返回信息
                        return json($this->initTips(200, '保存成功'));
                    } else {
                        // 事务回滚
                        Db::rollback();
                        //返回推送失败信息
                        return json($this->initTips(400, "保存失败"));
                    }
                } else {
                    // 事务回滚
                    Db::rollback();
                    // 返回添加失败信息
                    return json($this->initTips(400));
                }
            } catch (\Exception $ee) {
                // 返回异常信息
                return json($this->initTips(500));
            }
        }
    }
}
